<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<!-- 
Object.defineProperty()
1.这个方法是ES5新增的
2.这个方法的作用是用来：给对象新增属性，或者设置对象原有的属性
3.怎么用？
    Object.defineProperty(obj,key,{value:value})
    obj：要新增属性的对象
    key：要新增的属性名
    value：要新增的属性值
  
    writable配置项：设置该属性的值是否可以被修改，true表示可以修改，false表示不可以修改
    getter方法配置项：不需要我们手动调用，当读取属性值的时候，getter方法会被自动调用
        getter方法的返回值非常重要，这个方法返回的值就代表这个属性的值，没有return值，那么这个属性的值就是undefined
    setter方法配置项：不需要我们手动调用，当修改属性值的时候，setter方法会被自动调用
        setter方法上是有一个参数的，这个参数可以接收传过来的值

    注意：当配置项当中有getter和setter时，value和writable配置项都不能存在

    

-->
<body>
    <script>
        let phone={}
        let temp
        Object.defineProperty(phone,'brand',{
            // value:'huawei',
            // writable:true,

            get:function(){
                console.log('getter');
                // return 'huawei'
                return temp

                
            },
            set:function(val){
                console.log('setter',val);
                temp=val
            }
        })
      
    </script>
</body>
</html>